#ifndef _INC_OcRxFactory_INCLUDED
#define _INC_OcRxFactory_INCLUDED

#include "FactoryLib/OcRxPublic.h"

template<class ProductType, class ClassFactor>
class OcRxFactory
{
public:
	OcRxFactory(ProductType type);

public:
  virtual ~OcRxFactory(void);

public:
  void setName(const String& name){mName = name; }

public: 
	virtual ClassFactor * Creat(void* pData = NULL) = 0;
	virtual void destroy(ClassFactor *Obj, void* pData = NULL);

public:
	ProductType mType;
  String mName;
};

#include "OcRxFactory.INL"



#endif 
